package com.klanpaia.sos.neko.background1;


import org.andengine.engine.camera.hud.HUD;
import org.andengine.entity.sprite.AnimatedSprite;
import org.andengine.input.touch.TouchEvent;
import org.andengine.opengl.texture.region.TiledTextureRegion;
import org.andengine.util.debug.Debug;


import com.klanpaia.sos.neko.background1.Player.Direcao;


public class Botao {
	
	public enum Tipo{
		DIRECIONALA,
		DIRECIONALB,
		PULOS,
		CHUTES
	}
	
	private Player player;
	private MainActivity contexto;
	private AnimatedSprite myBotao;
	public static Tipo tipo;
	
	public Botao(MainActivity contexto, Player player) {
		super();
		this.contexto = contexto;
		this.player = player;
	}
	
	public void criarBotao(int x, int y, HUD hud, final Tipo tipo){
		
		TiledTextureRegion baseRegion;
		baseRegion = contexto.resource.gettHeroi();
		
		switch (tipo) {
		case DIRECIONALA:
			   baseRegion = contexto.resource.gettDirecionalA();
			break;
		case DIRECIONALB:
				baseRegion = contexto.resource.gettDirecionalA();
			break;
		case CHUTES:
				baseRegion = contexto.resource.gettBotaoA();
			break;
		case PULOS:  
				baseRegion = contexto.resource.gettBotaoB();
			break;
			default:
			break;
		}
		
		myBotao = new AnimatedSprite(x, y, baseRegion, contexto.getVertexBufferObjectManager()){
			public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
				switch(pSceneTouchEvent.getAction()) {
				
				case TouchEvent.ACTION_DOWN:
					Debug.e("precionado");
					switch (tipo) {
					case DIRECIONALA:
						player.setDirecao(Direcao.DIREITA);
						player.AtivarAnimacaoDeAndar();
						break;
					case DIRECIONALB:
						player.setDirecao(Direcao.ESQUERDA);
						player.AtivarAnimacaoDeAndar();
						break;
					case CHUTES:
						player.setDirecao(Direcao.CHUTE);
						player.AtivarAnimacaoDeAtaque();
						break;
					case PULOS:
						player.setDirecao(Direcao.PULO);
						break;
					default:
						player.setDirecao(Direcao.NADA);
						break;
					}
					break;
				
				
				case TouchEvent.ACTION_UP:				
					switch (tipo) {
					case DIRECIONALA:
						player.setDirecao(Direcao.NADA);
						break;
					case DIRECIONALB:
						player.setDirecao(Direcao.NADA);
						break;
						default:
						break;
					}
					
					break;
				}
				return false;
			}
			
		};
		
		//vira o direcional
		switch (tipo) {
		case DIRECIONALA:
			myBotao.setFlippedHorizontal(true);
			break;
			
		case DIRECIONALB:
			myBotao.setFlippedHorizontal(false);
			break;
			default:
			break;
		}
		
		myBotao.setScale(0.80f);
		myBotao.setAlpha(0.55f);
		
		hud.attachChild(myBotao);
		hud.registerTouchArea(myBotao);
		contexto.camera.setHUD(hud);
	}

	
}
